package com.team2.outpatient_sys.service;

import com.team2.outpatient_sys.pojo.Doctor;
import com.team2.outpatient_sys.pojo.DoctorAndDepartment;

import java.util.List;

public interface AdminDoctorService {
    /**
     * 添加新医护人员的服务的规范
     * @param doctor 添加的医护人员实例对象
     * @return 添加新医护人员服务是否成功
     */
    boolean addNew(Doctor doctor);

    /**
     * 逐一修改医护人员信息所有字段的服务的规范
     * @param doctor 修改的医护人员实例对象
     * @return 修改医护人员信息的服务是否成功
     */
    boolean updateWhole(Doctor doctor);

    /**
     * 根据id删除某一医护人员信息的服务的规范
     * @param doctorId 医护人员信息的id
     * @return 删除医护人员信息是否成功
     */
    boolean deleteById(Integer doctorId);

    /**
     * 获取所有医护人员信息的服务的规范
     * @return 获取到的所有医护人员数据的List集合
     */
    List<Doctor> getAll();

    /**
     * 使用分页插件查询某一分页的医护人员信息的规范
     * @param pageNum 查询的分页页码
     * @param pageSize 每一分页的数据个数
     * @return 查询医护人员信息的结果
     */
    List<Doctor> getByPage(Integer pageNum, Integer pageSize);

    /**
     * 使用分页插件查询某一分页的医护人员信息及其对应的科室信息的规范
     * @param pageNum 查询的分页页码
     * @param pageSize 每一分页的数据个数
     * @return 查询医护人员信息及其对应的科室信息的结果
     */
    List<DoctorAndDepartment> getAndDeptByPage(Integer pageNum, Integer pageSize);
}
